# -*- coding: utf-8 -*-

#set up matplotlib and the figure
import csv
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
#plt.figure

def convert(lista):
    lista_converter = []
    for x in lista:
        lista_converter.append(int(float(x)))
    return lista_converter

def getLista(tipo, nome):
    reader = csv.reader(open(tipo , "r"))
    
    for lista_linha in reader:
        if lista_linha.__contains__(nome):
            lista = lista_linha
    del lista[0]
    while len(lista) < 16:
        lista.append('0.0')
    
    lista = convert(lista)
    return lista

############# Criar gráfico #################
def criarGrafico(tipo, nome):
    

    ArrayY  = getLista(tipo, nome)

    tamanho_da_classe = 1     # isto e a largura da classe.
    localizacao_das_labels=0.5  # isto e o sition onde devem estar as labels depois
                            # do inicio de cada classe.

    # np.arange(4) = array([0, 1, 2, 3]) porque queres fazer quatro barras.
    plt.bar(np.arange(16),ArrayY,tamanho_da_classe)
    # agora estou a dar um nome a cada posicao do np.arange(4) com o ArrayX.
    plt.xticks(np.arange(16)+localizacao_das_labels,('95/96','96/97','97/98','98/99', '99/00', '00/01', '01/02', '02/03', '03/04','04/05', '05/06', '06/07', '07/08', '08/09', '09/10', '10/11'))
    # Como os limites automaticos podem dar um mau efeito estou a inseri-los
    # manualmente dizendo que quero o minimo do np.arange(4) e o maximo mais o 
    # tamanho da classe com intervalo de visualizacao.
    plt.xlim(np.arange(16).min(),np.arange(16).max()+tamanho_da_classe)
    # Depois de ter editado tudo posso lancar o grafico.
    
    plt.show()
